home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 4 / PC World Interactive 4.iso / share / internet / LSMIRC61.EXE / ctcps.in_ / ctcps.in
INI File  |  1997-09-21  |  17KB  |  398 lines

  1. [script]
  2. n0=;
  3. n1=;     this section deals with all ctcps except XDCC
  4. n2=;
  5. n3=alias soundctcp {
  6. n4=  if (%sctcp = ding) ding
  7. n5=  elseif (%sctcp = speak) speak $1-
  8. n6=  elseif (%sctcp != none) splay %sctcp
  9. n7=}
  10. n8=alias ctcpalert {
  11. n9=  if $2 = send soundctcp $1 tried to dcc send you a file
  12. n10=  elseif $2 = chat soundctcp $1 tried to dcc chat with you
  13. n11=  else soundctcp ctcp $2- received from $1
  14. n12=}
  15. n13=alias replyall {
  16. n14=  %i = 0
  17. n15=  :nx
  18. n16=  inc %i
  19. n17=  if $chan(%i) != $null {
  20. n18=    reply $chan(%i) $1-
  21. n19=    goto nx
  22. n20=  }
  23. n21=}
  24. n22=alias tempignore {
  25. n23=  ; temp ignore that doesn't echo to status window
  26. n24=  if $mask($1,3) !iswm %myadr { .ignore -t $mask($1,3) | .timer 1 10 .ignore -r $mask($1,3) }
  27. n25=}
  28. n26=alias playsound {
  29. n27=  if (%askforfile) {
  30. n28=    if ($findfile($wavedir,$2,1) = $null) {
  31. n29=      if ($comchan($1,0) != 0) {
  32. n30=        if (%autoget) {
  33. n31=          set %tvget [ $+ [ $1 ] ] $true | set %tvfile [ $+ [ $2 ] ] $true
  34. n32=          .timer 1 60 unset %tvget [ $+ [ $1 ] ]
  35. n33=          .timer 1 60 unset %tvfile [ $+ [ $1 ] ]
  36. n34=        }
  37. n35=        msg $comchan($1,1) ! $+ $1 $2
  38. n36=      }
  39. n37=    }
  40. n38=  }
  41. n39=  else {
  42. n40=    if ($findfile($wavedir,$2,1) = $null) altech -s %dis10 $+ (you don't have $2 $+ !)
  43. n41=    else splay $2
  44. n42=  }
  45. n43=}
  46. n44=alias gotvote {
  47. n45=  ; received vote of $1 (yes/no) from nick $2 site $3
  48. n46=  if $2 = $me goto placevote
  49. n47=  elseif %votetype = 0 goto placevote
  50. n48=  elseif %votetype = 1 {
  51. n49=    if $2 isop %votechan goto placevote
  52. n50=    else raw -q notice $2 :Sorry, this vote is only for those currently opped
  53. n51=  }
  54. n52=  elseif %votetype = 2 {
  55. n53=    if ($isop($2,%votechan)) goto placevote
  56. n54=    else raw -q notice $2 :Sorry, this vote is only for those in my op list
  57. n55=  }
  58. n56=  elseif %votetype = 3 {
  59. n57=    if ($isop($2,%votechan)) || ($nick isop %votechan)) goto placevote
  60. n58=    else raw -q notice $2 :Sorry, this vote is only for those currenly opped or in my op list
  61. n59=  }
  62. n60=  halt
  63. n61=  :placevote
  64. n62=  if (%voted [ $+ [ $3 ] ] ) { raw -q notice $2 :Hey! You already placed your vote! | halt }
  65. n63=  if $1 isin yesno {
  66. n64=    raw -q notice $2 :Your vote of " $+ $1 $+ " has been recorded.  Thanks!
  67. n65=    altech -s %dis10 $+ Vote received from $nick
  68. n66=    set %voted [ $+ [ $3 ] ] $true
  69. n67=    if $1 = yes inc %voteyes
  70. n68=    else inc %voteno
  71. n69=  }
  72. n70=  else raw -q notice $2 :huh? /CTCP $me YES or NO
  73. n71=}
  74. n72=alias gotctcp {
  75. n73=  set %udsite $mask($2,3) | set %site $mask($2,2)
  76. n74=  altech %dis33 $+ ( $+ %udsite $+ )
  77. n75=  inc %ctcp [ $+ [ %site ] ] | inc %ctcp [ $+ [ %udsite ] ] | inc %ctcptotal
  78. n76=  if %ctcp [ $+ [ %site ] ] = 1 swho $replace(%site,*!*@,*)
  79. n77=  altech %dis34 $+ Offense %ctcp [ $+ [ %site ] ] for %site
  80. n78=  .timer 1 30 unset %ctcp [ $+ [ %udsite ] ] | .timer 1 10 unset %ctcptotal
  81. n79=  .timer 1 60 unset %ctcp [ $+ [ %site ] ] 
  82. n80=  if %ctcptotal > 5 { 
  83. n81=    .ignore -t *!*@* | .timer 1 60 .ignore -r *!*@*
  84. n82=    altech -a %dis10 $+ CTCP Flood detected from multiple addresses!
  85. n83=    altech -a %dis10 $+ Little Star is ignoring all CTCPs for 60 seconds
  86. n84=    dh
  87. n85=  }
  88. n86=  if (%ctcp [ $+ [ %udsite ] ] > 3) {
  89. n87=    altech -a %dis10 $+ Flood attempt detected from multiple usernames from same domain, placing domain ban on $mask($2,4)
  90. n88=    kball $mask($2,4) Excessive CTCP's detected by you!
  91. n89=  }  
  92. n90=  if (%ctcp [ $+ [ %site ] ] > 2) {
  93. n91=    if (%hbanned [ $+ [ %udsite ] ] ) halt
  94. n92=    set %hbanned [ $+ [ %udsite ] ] $true
  95. n93=    .timer 1 120 unset %hbanned [ $+ [ %udsite ] ]
  96. n94=    altech -a %dis10 $+ Excessive CTCP's detected from %site
  97. n95=    if (%dontkick = $false) {
  98. n96=      altech -a %dis10 $+ Banning %site and %udsite and checking channel(s) for matches
  99. n97=      modeall +bb %site %udsite
  100. n98=      %c = 0
  101. n99=      :nx
  102. n100=      inc %c
  103. n101=      if $chan(%c) != $null {
  104. n102=        if ($me isop $chan(%c)) {
  105. n103=          kickall %site $chan(%c) Excessive CTCP's detected by you!
  106. n104=          kickall %udsite $chan(%c) Excessive CTCP's detected by you!
  107. n105=        }
  108. n106=        goto nx
  109. n107=      }
  110. n108=    }
  111. n109=    if (%permignore) { .ignore -tcpni %udsite | altech -a %dis10 $+ Added %udsite to permanent ignore list }
  112. n110=    else altech -a 3Perm Ignore Flooders disabled; did not add to permanent ignore list
  113. n111=    if (%permban) addban %udsite global Flooder $realtime $adate
  114. n112=    else altech -a 3Perm Ban Flooders disabled; did not add to permanent ban list
  115. n113=    replyall flood_alert Excessive ctcp's detected from %site
  116. n114=    if (%sflood = ding) ding
  117. n115=    elseif (%sflood = speak) speak CTCP flood detected
  118. n116=    elseif (%sflood != none) splay %sflood
  119. n117=  }
  120. n118=  halt
  121. n119=}
  122. n120=ctcp 1:DCC RESUME: :>
  123. n121=ctcp 1:DCC ACCEPT: :>
  124. n122=ctcp 1:PONG: :>
  125. n123=ctcp 70:PONG:halt
  126. n124=#page off
  127. n125=ctcp 1:PAGE:{
  128. n126=  if (($nick != $me) && ($wildsite !iswm %myadr)) tempignore $fulladdress
  129. n127=  raw -q PRIVMSG $nick :12,0 +$ $realtime $adate 2,0I have received your page... | splay page.wav
  130. n128=  altech -a %dis10 $+ $realtime $adate You have been paged by $fulladdress
  131. n129=  .timer 1 3 raw -q PRIVMSG $nick :2,0If I do not reply soon, I am probably unreachable.  If so, leave a message in this window which will be saved.
  132. n130=}
  133. n131=#page end
  134. n132=ctcp 1:YES:{
  135. n133=  if $ulevel < 19 tempignore $fulladdress
  136. n134=  if (($nick ison %votechan) && (%vote)) gotvote yes $nick $site
  137. n135=  else gotctcp $nick $fulladdress
  138. n136=  halt
  139. n137=}
  140. n138=ctcp 1:NO:{
  141. n139=  if $ulevel < 19 tempignore $fulladdress
  142. n140=  if (($nick ison %votechan) && (%vote)) gotvote no $nick $site
  143. n141=  else gotctcp $nick $fulladdress
  144. n142=  halt
  145. n143=}
  146. n144=ctcp 1:SOUND:{
  147. n145=  altech %dis11 $+ [[ $+ $nick $+ ]] SOUND $2-
  148. n146=  if ((%notbys = $false) && ($ulevel < 19)) {
  149. n147=    inc %sounds [ $+ [ $site ] ]
  150. n148=    .timer 1 %soundin unset %sounds [ $+ [ $site ] ]
  151. n149=    if (%sounds [ $+ [ $site ] ] > %soundis) {
  152. n150=      altech %dis11 $+ [[ $+ $nick $+ ]] SOUND $2-
  153. n151=      if $comchan($nick,0) != 0 {
  154. n152=        kball $wildsite Excessive Sound requests detected from you!
  155. n153=        if (%ekick) {
  156. n154=          if (%speak1) speak excessive sound requests from $nick
  157. n155=          altech -a %dis3 $+ Excessive sound requests! %dis4 Kicking $nick
  158. n156=        }
  159. n157=      }
  160. n158=      .ignore -t $wildsite | .timer 1 30 .ignore -r $wildsite
  161. n159=      halt
  162. n160=    }
  163. n161=  }
  164. n162=  if ((%allsound) || ((%ulsound) && ($ulevel > 18))) playsound $nick $2
  165. n163=  else {
  166. n164=    if $ulevel < 19 tempignore $fulladdress
  167. n165=    if (%notbys = $false) ctcpalert $nick sound
  168. n166=  }
  169. n167=  halt
  170. n168=}
  171. n169=ctcp 1:DCC CHAT:{
  172. n170=  if (($away) && (%nochataway)) {
  173. n171=    raw -q PRIVMSG $nick :2,0Sorry, I am away right now 12,0( $+ %amsg $+ )
  174. n172=    if (%awaylog) raw -q PRIVMSG $nick :2,0You can send me a regular /msg, which will be saved
  175. n173=    tempignore $fulladdress
  176. n174=    halt
  177. n175=  }
  178. n176=  elseif ($ulevel < 19) {
  179. n177=    if (%uchatauto) { .creq auto | :> }
  180. n178=    elseif (%uchatask) { .creq ask | :> }
  181. n179=    else {
  182. n180=      tempignore $fulladdress
  183. n181=      raw -q notice $nick :Sorry, I am not accepting any DCC chats from unrecognized addresses right now.  Try using /query or /msg.
  184. n182=      echo -s %dis31 $+ -Refusing DCC Chat- %dis32 $+ from $nick (un-recognized)
  185. n183=      ctcpalert $nick chat | gotctcp $nick $fulladdress | halt
  186. n184=    }
  187. n185=  }
  188. n186=  elseif ($ulevel = 70) { .creq auto | :> }
  189. n187=  elseif (%rchatauto) { .creq auto | :> }
  190. n188=  elseif (%rchatask) { .creq ask | :> }
  191. n189=  else {
  192. n190=    tempignore $fulladdress
  193. n191=    raw -q notice $nick :Sorry, I am not accepting and DCC chats from anyone right now.  Try using /query or /msg.
  194. n192=    echo -s %dis31 $+ -Refusing DCC Chat- %dis32 $+ from $nick ( $+ $mask($fulladdress,3) $+ ) (recognized)
  195. n193=    ctcpalert $nick chat | halt
  196. n194=  }
  197. n195=}
  198. n196=ctcp 1:DCC SEND:{
  199. n197=  if ((%tvget [ $+ [ $nick ] ] ) && (%tvfile [ $+ [ $3 ] ] )) {
  200. n198=    set %tvgot [ $+ [ $3 ] ] $true | .sreq +m | .sreq auto | :>
  201. n199=  }
  202. n200=  elseif ($fserv($nick) = $null) {
  203. n201=    if (%minsend) .sreq +m
  204. n202=    else .sreq -m
  205. n203=    if $ulevel < 19 {  
  206. n204=      if (%usendauto) { .sreq auto | raw -q notice $nick : $+ %fsend | :> }
  207. n205=      elseif (%usendask) { .sreq ask | :> }
  208. n206=      else {
  209. n207=        tempignore $fulladdress
  210. n208=        raw -q notice $nick :Sorry, I am not accepting and DCC sends from unrecognized addresses right now
  211. n209=        echo -s %dis31 $+ -Refusing DCC Send- %dis32 $+ from $nick (un-recognized)
  212. n210=        ctcpalert $nick send | gotctcp $nick $fulladdress | halt
  213. n211=      }
  214. n212=    }
  215. n213=    else {
  216. n214=      if (%rsendauto) { .sreq auto | raw -q notice $nick : $+ %fsend | :> }
  217. n215=      elseif (%rsendask) { .sreq ask | :> }
  218. n216=      else {
  219. n217=        tempignore $fulladdress
  220. n218=        raw -q notice $nick :Sorry, I am not accepting any DCC sends from anyone right now
  221. n219=        echo -s %dis31 $+ -Refusing DCC Send- %dis32 $+ from $nick ( $+ $mask($fulladdress,3) $+ ) (recognized)
  222. n220=        ctcpalert $nick send | halt
  223. n221=      }
  224. n222=    }
  225. n223=  }
  226. n224=  else {
  227. n225=    if ((%fsask) || (%fsauto)) {
  228. n226=      if (%fservcheck) {
  229. n227=        set %find $findfile(c:\,$3,1)
  230. n228=        if %find = $null set %find $findfile(d:\,$3,1)
  231. n229=        if ((%find != $null) && ($lof(%find) >= $6)) { msg =$nick 4Refusing file:3 $3 (already have it!) | halt }
  232. n230=      }
  233. n231=      if (%minfs) .sreq +m
  234. n232=      else .sreq -m
  235. n233=      if (%fsask) { msg =$nick 4,0Send acknowledged:3,0 $3 | .sreq ask | :> }
  236. n234=      else { msg =$nick 4,0Accepting file:3,0 $3 | .sreq auto | :> }
  237. n235=    }
  238. n236=    else {
  239. n237=      tempignore $fulladdress
  240. n238=      raw -q notice $nick :Sorry, I am not accepting DCC sends from people in f-serve right now
  241. n239=      echo -s %dis31 $+ -Refusing DCC Send- %dis32 $+ from $nick (refusing send from people in f-serve)
  242. n240=      halt
  243. n241=    }
  244. n242=  }
  245. n243=}
  246. n244=ctcp 1:VERSION:{
  247. n245=  altech %dis11 $+ [[ $+ $nick $+ ]] VERSION
  248. n246=  tempignore $fulladdress
  249. n247=  ctcpalert $nick version | reply $nick VERSION %ver
  250. n248=  if $ulevel < 19 gotctcp $nick $fulladdress
  251. n249=  ; hey, I don't put the script name anywhere but here...
  252. n250=  ; be nice and leave it alone :)
  253. n251=  halt
  254. n252=}
  255. n253=ctcp 1:TIME:{
  256. n254=  tempignore $fulladdress | ctcpalert $nick time
  257. n255=  if $ulevel < 19 { altech %dis11 $+ [[ $+ $nick $+ ]] $1- (ignoring) | reply $nick TIME Time for me to ignore you | gotctcp $nick $fulladdress }
  258. n256=  else { altech %dis11 $+ [[ $+ $nick $+ ]] $1 (recognized) | reply $nick TIME The time is $realtime $+ , $day $adate }
  259. n257=  halt
  260. n258=}
  261. n259=ctcp 1:CLIENTINFO:{
  262. n260=  tempignore $fulladdress | ctcpalert $nick client info
  263. n261=  if $ulevel < 19 { altech %dis11 $+ [[ $+ $nick $+ ]] $1- (ignoring) | reply $nick won't %wont | gotctcp $nick $fulladdress }
  264. n262=  else { altech %dis11 $+ [[ $+ $nick $+ ]] $1- (recognized) | reply $nick doesn't to this ctcp }
  265. n263=  halt
  266. n264=}
  267. n265=ctcp 1:FINGER:{
  268. n266=  tempignore $fulladdress | ctcpalert $nick finger
  269. n267=  if $ulevel < 19 { altech %dis11 $+ [[ $+ $nick $+ ]] $1- (ignoring) | reply $nick won't %wont | gotctcp $nick $fulladdress }
  270. n268=  else { altech %dis11 $+ [[ $+ $nick $+ ]] $1- (recognized) | reply $nick doesn't to this ctcp }
  271. n269=  halt
  272. n270=}
  273. n271=ctcp 1:USERINFO:{
  274. n272=  tempignore $fulladdress | ctcpalert $nick user info
  275. n273=  if $ulevel < 19 { altech %dis11 $+ [[ $+ $nick $+ ]] $1- (ignoring) | reply $nick won't %wont | gotctcp $nick $fulladdress }
  276. n274=  else { altech %dis11 $+ [[ $+ $nick $+ ]] $1- (recognized) | reply $nick doesn't to this ctcp }
  277. n275=  halt
  278. n276=}
  279. n277=ctcp 1:PING:{
  280. n278=  altech %dis11 $+ [[ $+ $nick $+ ]] $1
  281. n279=  tempignore $fulladdress | ctcpalert $nick ping
  282. n280=  reply $nick PING $2
  283. n281=  if $ulevel < 19 gotctcp $nick $fulladdress
  284. n282=  halt
  285. n283=}
  286. n284=ctcp 19:ISIT:{
  287. n285=  tempignore $fulladdress
  288. n286=  if $2 = $null { altech %dis11 $+ [[ $+ $nick $+ ]] $1 (no nick given!) | halt }
  289. n287=  altech %dis11 $+ [[ $+ $nick $+ ]] $1-
  290. n288=  if $2 = $me { raw -q notice $nick :uh, yeah...  I think I am who I am | halt }
  291. n289=  if $2 = $nick { raw -q notice $nick :ummm... you doubt who you are? | halt }
  292. n290=  if $comchan($2,0) = 0 raw -q notice $nick :I do not see $2 on any channels I am on
  293. n291=  elseif $gl($2) < 19 raw -q notice $nick : $+ $2 is not recognized
  294. n292=  else {
  295. n293=    set %nick $rnick.nick($2)
  296. n294=    if %nick = $2 raw -q notice $nick : $+ $2 ( $+ $ma($2) $+ ) is a recognized nick
  297. n295=    else raw -q notice $nick : $+ $2 ( $+ $ma($2) $+ ) is recognized as %nick
  298. n296=  }
  299. n297=  halt
  300. n298=}
  301. n299=ctcp 19:COUNTRY:{
  302. n300=  tempignore $fulladdress
  303. n301=  if $2 = $null { altech %dis11 $+ [[ $+ $nick $+ ]] $1 (no nick given!) | halt }
  304. n302=  altech %dis11 $+ [[ $+ $nick $+ ]] $1- (responding)
  305. n303=  if $comchan($2,0) = 0 { raw -q notice $nick :I do not see $2 on any channels I am on | halt }
  306. n304=  set %country $country($2)
  307. n305=  if %country = $null raw -q notice $nick :I do not know where $a5($2) is!
  308. n306=  else raw -q notice $nick : $+ $a5($2) appears to be in %country
  309. n307=  halt
  310. n308=}
  311. n309=ctcp 20:HELP:{
  312. n310=  altech %dis11 $+ [[ $+ $nick $+ ]] $1
  313. n311=  echo 3 -s HELP information being sent to $nick
  314. n312=  set %tn3 $nick | play -ctfriend $me $mircdirhelp\msghelp.hlp 2000
  315. n313=  halt
  316. n314=}
  317. n315=ctcp 40:HELP:{
  318. n316=  altech %dis11 $+ [[ $+ $nick $+ ]] $1
  319. n317=  echo 3 -s HELP information being sent to $nick
  320. n318=  set %tn3 $nick | play -ctop $me $mircdirhelp\msghelp.hlp 2000
  321. n319=  halt
  322. n320=}
  323. n321=ctcp 50:HELP:{
  324. n322=  altech %dis11 $+ [[ $+ $nick $+ ]] $1
  325. n323=  echo 3 -s HELP information being sent to $nick
  326. n324=  set %tn3 $nick | play -ctmaster $me $mircdirhelp\msghelp.hlp 2000
  327. n325=  halt
  328. n326=}
  329. n327=alias country {
  330. n328=  set %r2 $right( [ $a5($1) ] ,2) | set %r3 $right( [ $a5($1) ] ,3)
  331. n329=  if %r3 = edu return the USA (at an educational institution)
  332. n330=  elseif %r3 = gov return the USA (at a government institution)
  333. n331=  elseif %r3 = mil return the USA (military address)
  334. n332=  elseif ((%r3 = org) || (%r3 = net) || (%r3 = com)) return the USA
  335. n333=  elseif %r2 = am return Armenia
  336. n334=  elseif %r2 = ar return Argentina
  337. n335=  elseif %r2 = at return Austria
  338. n336=  elseif %r2 = au return Australia
  339. n337=  elseif %r2 = be return Belgium
  340. n338=  elseif %r2 = bm return Bermuda
  341. n339=  elseif %r2 = br return Brazil
  342. n340=  elseif %r2 = ca return Canada
  343. n341=  elseif %r2 = ch return Switzerland
  344. n342=  elseif %r2 = cl return Chile
  345. n343=  elseif %r2 = cn return China
  346. n344=  elseif %r2 = co return Colombia
  347. n345=  elseif %r2 = cr return Costa Rica
  348. n346=  elseif %r2 = cz return Czech Republic
  349. n347=  elseif %r2 = de return Germany
  350. n348=  elseif %r2 = dk return Denmark
  351. n349=  elseif %r2 = ec return Ecuador
  352. n350=  elseif %r2 = ee return Estonia
  353. n351=  elseif %r2 = eg return Egypt
  354. n352=  elseif %r2 = es return Spain
  355. n353=  elseif %r2 = fi return Finland
  356. n354=  elseif %r2 = fr return France
  357. n355=  elseif %r2 = gb return Great Britain
  358. n356=  elseif %r2 = gr return Greece
  359. n357=  elseif %r2 = hk return Hong Kong
  360. n358=  elseif %r2 = hr return Croatia
  361. n359=  elseif %r2 = hu return Hungary
  362. n360=  elseif %r2 = id return Indonesia
  363. n361=  elseif %r2 = ie return Ireland
  364. n362=  elseif %r2 = il return Israel
  365. n363=  elseif %r2 = in return India
  366. n364=  elseif %r2 = is return Iceland
  367. n365=  elseif %r2 = it return Italy
  368. n366=  elseif %r2 = jm return Jamaica
  369. n367=  elseif %r2 = jp return Japan
  370. n368=  elseif %r2 = kr return Korea
  371. n369=  elseif %r2 = kw return Kuwait
  372. n370=  elseif %r2 = lt return Lithuania
  373. n371=  elseif %r2 = lv return Latvia
  374. n372=  elseif %r2 = mx return Mexico
  375. n373=  elseif %r2 = my return Malaysia
  376. n374=  elseif %r2 = nl return the Netherlands
  377. n375=  elseif %r2 = no return Norway
  378. n376=  elseif %r2 = nz return New Zealand
  379. n377=  elseif %r2 = pe return Peru
  380. n378=  elseif %r2 = ph return Philippines
  381. n379=  elseif %r2 = pl return Poland
  382. n380=  elseif %r2 = pt return Portugal
  383. n381=  elseif %r2 = ru return Russia
  384. n382=  elseif %r2 = se return Sweden
  385. n383=  elseif %r2 = sg return Singapore
  386. n384=  elseif %r2 = si return Slovenia
  387. n385=  elseif %r2 = sk return Slovakia
  388. n386=  elseif %r2 = su return Soviet Union[sic]
  389. n387=  elseif %r2 = th return Thailand
  390. n388=  elseif %r2 = tr return Turkey
  391. n389=  elseif %r2 = tw return Taiwan
  392. n390=  elseif %r2 = uk return the United Kingdom
  393. n391=  elseif %r2 = us return the USA
  394. n392=  elseif %r2 = uy return Uruguay
  395. n393=  elseif %r2 = ve return Venezuela
  396. n394=  elseif %r2 = za return South Africa
  397. n395=}
  398.